Changed __config to react to all of clang's currently documented has_feature flags, and renamed _LIBCPP_MOVE to _LIBCPP_HAS_NO_RVALUE_REFERENCES to be more consistent with the rest of the libc++'s flags, and with clang's nomenclature. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113086 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/__tree b/include/__tree index 7def154..10b5f3e 100644 --- a/include/__tree +++ b/include/__tree 
@@ -589,14 +589,14 @@    value_type __value_;   -#ifdef _LIBCPP_MOVE +#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)  template <class ..._Args>  explicit __tree_node(_Args&& ...__args)  : __value_(_STD::forward<_Args>(__args)...) {} -#else // _LIBCPP_MOVE +#else // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)  explicit __tree_node(const value_type& __v)  : __value_(__v) {} -#endif // _LIBCPP_MOVE +#endif // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)  };    template <class> class __map_iterator; @@ -827,11 +827,11 @@  void __assign_unique(_InputIterator __first, _InputIterator __last);  template <class _InputIterator>  void __assign_multi(_InputIterator __first, _InputIterator __last); -#ifdef _LIBCPP_MOVE +#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES  __tree(__tree&& __t);  __tree(__tree&& __t, const allocator_type& __a);  __tree& operator=(__tree&& __t); -#endif // _LIBCPP_MOVE +#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES    ~__tree();   @@ -846,7 +846,8 @@    void swap(__tree& __t);   -#ifdef _LIBCPP_MOVE +#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_HAS_NO_VARIADICS  template <class... _Args>  pair<iterator, bool>  __emplace_unique(_Args&&... __args); @@ -860,6 +861,7 @@  template <class... _Args>  iterator  __emplace_hint_multi(const_iterator __p, _Args&&... __args); +#endif // _LIBCPP_HAS_NO_VARIADICS    template <class _V>  pair<iterator, bool> __insert_unique(_V&& __v); @@ -869,13 +871,13 @@  iterator __insert_multi(_V&& __v);  template <class _V>  iterator __insert_multi(const_iterator __p, _V&& __v); -#else // _LIBCPP_MOVE +#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES    pair<iterator, bool> __insert_unique(const value_type& __v);  iterator __insert_unique(const_iterator __p, const value_type& __v);  iterator __insert_multi(const value_type& __v);  iterator __insert_multi(const_iterator __p, const value_type& __v); -#endif // _LIBCPP_MOVE +#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES    pair<iterator, bool> __node_insert_unique(__node_pointer __nd);  iterator __node_insert_unique(const_iterator __p, @@ -967,10 +969,10 @@  __find_equal(const_iterator __hint, typename __node::base::pointer& __parent,  const _Key& __v);   -#ifdef _LIBCPP_MOVE +#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)  template <class ..._Args>  __node_holder __construct_node(_Args&& ...__args); -#else // _LIBCPP_MOVE +#else // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)  __node_holder __construct_node(const value_type& __v);  #endif   @@ -1182,7 +1184,7 @@  __begin_node() = __end_node();  }   -#ifdef _LIBCPP_MOVE +#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES    template <class _Tp, class _Compare, class _Allocator>  __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t) @@ -1302,7 +1304,7 @@  return *this;  }   -#endif // _LIBCPP_MOVE +#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES    template <class _Tp, class _Compare, class _Allocator>  __tree<_Tp, _Compare, _Allocator>::~__tree() @@ -1591,7 +1593,8 @@  ++size();  }   -#ifdef _LIBCPP_MOVE +#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES +#ifndef _LIBCPP_HAS_NO_VARIADICS    template <class _Tp, class _Compare, class _Allocator>  template <class ..._Args> @@ -1666,6 +1669,8 @@  return iterator(static_cast<__node_pointer>(__h.release()));  }   +#endif // _LIBCPP_HAS_NO_VARIADICS +  template <class _Tp, class _Compare, class _Allocator>  template <class _V>  pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool> @@ -1726,7 +1731,7 @@  return iterator(__h.release());  }   -#else // _LIBCPP_MOVE +#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES    template <class _Tp, class _Compare, class _Allocator>  typename __tree<_Tp, _Compare, _Allocator>::__node_holder @@ -1795,7 +1800,7 @@  return iterator(__h.release());  }   -#endif // _LIBCPP_MOVE +#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES    template <class _Tp, class _Compare, class _Allocator>  pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>